package com.backwaveweibo.bww.entity;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.util.ArrayList;
import java.util.List;

/**
 * @author GHW : RD-Kelsey
 * @description 微博 Weibo 实体
 * @date 2020/6/8
 * <p>
 * WeiboId : 微博 id
 * forward : 该条微博是否是转发的微博，为空则不是，如果有，一定是转发的微博的id
 * date : 微博发布时间
 * userfile : 用户文件，本项目使用七牛云对象存储做为图床
 * content : 微博内容
 * pageNo : 页码数
 * pageSize : 每页显示数
 * likeCount: 点赞数
 * user : 一对一；一条微博对应一个用户
 * commentsList : 一对多；一条微博多条评论，并且一个人可以多次评论
 */

@Data
@ToString
@Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Weibo {
    @Id
    private Long weiboId;
    @Field(type = FieldType.Keyword)
    private Long forward;
    @Field(type = FieldType.Keyword)
    private String date;
    @Field(type = FieldType.Keyword)
    private String userfile;
    @Field(type = FieldType.Text, analyzer = "ik_smart")
    private String content;
    @Field(type = FieldType.Keyword)
    private Long likeCount;
    @Field(type = FieldType.Keyword)
    private Long userId;
    @Field(type = FieldType.Nested)
    private User user;
    @Field(type = FieldType.Nested)
    private List<Comments> commentsList = new ArrayList<>();
}
